Skip to content

testing improvements and doc#63

Merged
bellhyve merged 51 commits intomainfrom
dev
Mar 16, 2026
Merged

testing improvements and doc#63
bellhyve merged 51 commits intomainfrom
dev

Conversation

@bellhyve
Copy link
Copy Markdown
Collaborator

@bellhyve bellhyve commented Mar 6, 2026

No description provided.

Daniel J. Bell and others added 30 commits January 14, 2026 20:59
add shellspec testing, see spec/README.md for details
feat: make ssh_opts_test spec configurable with environment variables

feat: add independent target endpoint and clone validation tests

fix: missing override options and rename dryrun

test: shellspec opts test stuff

test: clean up option parsing tests to eliminate warnings and validate outputs

test: rename opts test
test-what-you-can shellspec experiment

fix basic args example test
manppages update and dropped unnecessary -L for --raw sends

docs: standardize SYNOPSIS sections in man pages

dropped unnecessary -L for --raw sends

docs: add missing EXIT STATUS and NOTES sections to man pages

tweak prune to use 'tee' instead of a blind redirect

docs: standardize code blocks, fix typos, and update references

move freebsd ports template

increment to Zelta version 1.1

docs: add zelta-prune(8) to new man pages list
local review of shellspec tester
fix: replace command string concatenation with functions for shell
compatibility
fix: ensure clean exit statuses in test helper functions
fix: remove external commands from skip functions to prevent Shellspec
errors
fix: add -n flag to ssh commands in test helpers to prevent stdin
reading
fix missing 'ssh -n' input capture bug with shellspec
test: add divergent tree setup spec and helpers
test: add divergent tree match test with complex scenarios
divergent test example
fix divergent test
testing: add canmount permission for target creation
test: fix skip condition for divergent spec tests
testing: switch to cleaner testing output mode
test: add helper functions for pool and command validation
fix: output source and target list times in zelta match summary when
--time is used
command build order
fix: make snapshot name parsing portable across awk variants
fix LOG_MODE processing especially for 'zelta match'
improve json stream list output
fix: add SYSTIME option for mawk JSON timestamp compatibility
ensure replicationStreams* json doesn't report 'null'
add install/uninstall to test spec
test: add marker files to track pool creation in tests
test: add process ID to marker files and dataset cleanup
spec test improvement to only remove pool and trees if we created them
Daniel J. Bell and others added 19 commits January 23, 2026 13:49
refactor: improve install-from-git.sh branch parsing and PATH warnings
…H warning logic

feat: enhance PATH warning to detect conflicting zelta binaries in install.sh
refactor: remove interactive prompts from install.sh and add ZELTA_QUIET support

fix: suppress install.sh guidance in curl installer

fix: update repo URL and simplify PATH guidance in install scripts
Refactor ShellSpec test infrastructure and generation system
Restructure test directory with version 1 archive of prior work and a
new modular architecture under test/runners.
Test generation:

Add Ruby-based ShellSpec test generator with YAML schema support
Modularize placeholder substitution and use when_command in schema
Make shellspec_name the single source of truth (extracted from YAML)
Add YAML validation script (validate_yaml.rb)
Handle command timeouts, failures, and empty output gracefully
Fix env var substitution to match longest token first
Escape backticks in output to prevent shell evaluation
Force UTF-8 encoding on output handling during SysExec calls
Exit matcher generation on awk errors

Test coverage:

Add generated tests for divergent tree, zelta revert, and zelta clone
Break divergent tree setup into discrete phases (initial, backup, divergence)
Wrap divergent tree tests with Describe blocks for conditional Skip If

Environment and portability:

Add helpers to configure env vars from the last tmp-installed zelta
Allow bypass of process-based env vars for pre-configured environments
Use which instead of command -v for Ubuntu compatibility
Use ls -1d for portable directory listing
Use sudo for local zfs allow; update error checks after permission changes

Project structure:

Reorganize test/runners into env/ and test_generation/ directories
Implement absolute path resolution (SCRIPT_DIR pattern) across all scripts
Rename manual_cleanup.sh to test_generator_cleanup.sh
Move .rubocop.yml to lib/ruby/, fix RuboCop warnings

Documentation:

Rewrite test_generation and test/runners READMEs
Add debugging workflow docs and file hierarchy restructuring plan
@bellhyve bellhyve requested a review from rlogwood March 6, 2026 17:21
@bellhyve bellhyve self-assigned this Mar 6, 2026
@bellhyve bellhyve changed the title minor doc weak for one-shot installer minor doc tweak for one-shot installer Mar 8, 2026
rlogwood and others added 2 commits March 15, 2026 23:01
- Added new ShellSpec tests for policy and prune
- Fixed automatic test generation output comparison across different OSes
- Regenerated all YAML-defined tests and verified with mixed remote testing on Ubuntu and FreeBSD
- Added GitHub Actions workflow (.github/workflows/shellspec.yml) to run ShellSpec tests on push to  main/dev/feature branches and PRs to main/dev
- Added ShellSpec Tests status badge to README
- Added -qq flag to zelta clone and zelta revert to accommodate OS-specific output differences
- Enabled combined use of pattern and selector specs for debugging tests (test/runners/test_generation/lib/orchestration/setup_tree)
- Centralized environment variable substitution cleanup in test_generator.rb, removed from awk matcher generation
- Improved test generator error reporting
- Added VM setup helpers to create a local Ubuntu VM that mirrors the GitHub Actions testing environment
- Improved test README
@bellhyve bellhyve changed the title minor doc tweak for one-shot installer testing improvements and doc Mar 16, 2026
@bellhyve bellhyve merged commit e760ffc into main Mar 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants